יש לי לדוגמה שלושה classים עם אותו שם,
אני דרך jQuery רוצה לבצע פונקציה/פעולה רק על ה class השני מבינהם, איך אני עושה את זה?
22 תשובות
תן להם id שונה ותבצע את הפעולה לפי ה id (#). אני לא בטוח שיש עוד דרך...
שלושה Classים עם אותו שם? כנראה התכוונת לשלושה אלמנטים עם אותו Class. בכל מקרה, אני לא ממש מבין ב-jQuery, אבל נדמה לי שזה די פשוט; תיעזר בדוקומנטציה. מה שאתה צריך לעשות זה לקבל רשימה של כל האלמנטים שנמצאים ב-Class מסוים, ופשוט לקחת את השני מביניהם ולפעול עליו.
@yardsod במצב כזה אני לא רואה שום סיבה להשתמש ב-ID. תמיד עדיף למצוא שיטות לוגיות לעשות את זה במקום לפנות ישר לסימון ישיר של ID. זה גמיש יותר.
בעזרת eq().
אז זה יהיה ככה:
דוגמא זו תוציא לך את האלמנט השני שהclass שלו הוא "class".(האלמנט הראשון הוא 0 לכן השני הוא 1)
בהצלחה
@yonikal56 תודה. לא שאלתי את השאלה אבל עזרת גם לי....
@yonikal56 זה לא עונה על השאלה. "אם הם באותו מקום." הם לא בהכרח באותו מקום.
עריכה: נראה שזו באמת הדרך לעשות את זה. למה אמרת שזה רק אם הם באותו מקום? eq() פועל על סט הערכים, שבמקרה הזה הוא כל האלמנטים עם אותו Class. הם לא חייבים להיות אחד ליד השני.
@yonikal56 זה נכון, רק רוצה להזכיר שניתן לעשות גם:
@zacharya ואז תוותר על אופטימיזציית DOM. לקוח מהדוקומנטציה:
מה שהוא אמר באמת עובד ובמדריכים לימדתי ככה, אבל המדריכים היו מיועדים לזה, מה שהראתי פה זה עדיף.
אבל זה לא עובד:
זה עדיין עושה את הפעולה על כל ה classים שיש לי, ולא רק על ה class השני, (thisj=2)
בטח שלא יעבוד לך. האירוע eq צריך להיות לפני הפונקציה שמופעלת במקרה שלך slideDown.
עכשיו עובד.. עוד משהו, איך אני מקבל eq של class ע"פ המשתנה this ?
ברגע שאתה קיבלת את הסלקטור ככה:
אתה יכול להוסיף פונקצייה שתקבל את הTHIS הנוצר:
var get = $(this);
});
אבל אם יש לי פונקציה כזו למשל:
$(".body_warp_websites_work_body").hover(function(){
});
איך בתוכה אני לוקח את ה eq שלה?
מוסיף לתגים src לפי המספר שלם מ0 עד 1 ומוציא בעזרת
@ArielTador ככה:
});
עריכה: לא הבנתי את השאלה... תתעלם
כן עשיתי את זה לבינתים(כבר חשבתי על זה), אבל אין שיטה חלופית?
שיטה חלופית ללעשות attr('src').